ASP.NET Core 可以根據不同環境,使用不同的程式設定。
Development:
appsettings.json 是 ASP.NET Core 常見的設定檔。
打開 appsettings.json
在 VS Code 左側找到:TaskFlow3.Api → appsettings.json
新增 TaskFlow 設定
{
"Logging": {
"LogLevel": {
"Default": "Information",
"Microsoft.AspNetCore": "Warning"
}
},
"AllowedHosts": "*",
"TaskFlow": {
"AppName": "TaskFlow 任務管理系統",
"Version": "1.0"
}
}
開啟 Program.csTaskFlow3.Api → Program.cs
using Microsoft.AspNetCore.Identity;
using Microsoft.EntityFrameworkCore;
using TaskFlow3.Api.Data;
using TaskFlow3.Api.Services;
var builder = WebApplication.CreateBuilder(args);
// OpenAPI
builder.Services.AddOpenApi();
// Controller
builder.Services.AddControllers();
// 原本的任務 Service
builder.Services.AddScoped<ITaskService, TaskService>();
// 原本的 TaskFlow 資料庫
string dbPath = Path.Combine(
builder.Environment.ContentRootPath,
"taskflow-ef.db"
);
builder.Services.AddDbContext<TaskFlowDbContext>(options =>
options.UseSqlite($"Data Source={dbPath}")
);
// 今天新增的登入資料庫
string authDbPath = Path.Combine(
builder.Environment.ContentRootPath,
"taskflow-auth.db"
);
builder.Services.AddDbContext<AuthDbContext>(options =>
options.UseSqlite($"Data Source={authDbPath}")
);
// Identity
builder.Services.AddAuthorization();
builder.Services.AddIdentityApiEndpoints<IdentityUser>()
.AddEntityFrameworkStores<AuthDbContext>();
var app = builder.Build();
if (app.Environment.IsDevelopment())
{
app.MapOpenApi();
app.UseSwaggerUI(options =>
{
options.SwaggerEndpoint("/openapi/v1.json", "v1");
});
}
app.UseHttpsRedirection();
app.UseAuthentication();
app.UseAuthorization();
app.MapControllers();
// 註冊與登入路由
app.MapGroup("/auth").MapIdentityApi<IdentityUser>();
// 原本的伺服器測試
app.MapGet("/test", () => "伺服器正常運作!");
app.MapGet("/app-info", (IConfiguration config) =>
{
string appName =
config["TaskFlow:AppName"] ?? "TaskFlow";
string version =
config["TaskFlow:Version"] ?? "1.0";
return Results.Ok(new
{
appName,
version
});
});
// 需要登入的 API
app.MapGet("/api/my-account", (
System.Security.Claims.ClaimsPrincipal user) =>
{
return Results.Ok(new
{
message = "登入驗證成功!",
userName = user.Identity?.Name
});
})
.RequireAuthorization();
app.Run();
執行程式在 VS Code 終端機輸入:cd TaskFlow3.Api
接著:dotnet run
dotnet publish 是 .NET 提供的發布指令。
進入 TaskFlow3 根目錄
在 VS Code 終端機輸入:cd TaskFlow3
發布 TaskFlow API
執行:dotnet publish .\TaskFlow3.Api\TaskFlow3.Api.csproj -c Release -o .\publish
查看發布資料夾
在 VS Code 左側應該會多出:TaskFlow3.Api.dll、TaskFlow3.Api.runtimeconfig.json、appsettings.json
進入發布資料夾:cd TaskFlow3\publish
設定本機測試環境在同一個 PowerShell 終端機輸入:
$env:DOTNET_ENVIRONMENT = "Production"
$env:ASPNETCORE_ENVIRONMENT = "Production"
啟動發布版本執行:dotnet .\TaskFlow3.Api.dll --urls "http://127.0.0.1:5400"
開啟瀏覽器測試在瀏覽器輸入:http://127.0.0.1:5400/app-info
回到專案根目錄cd TaskFlow3
查看修改內容git status
加入檔案git add .
接著:git status
建立版本紀錄git commit -m "Day 29: Prepare TaskFlow for deployment"
最後查看:git log --oneline